﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//union S {
//	char c1;
//	int i;
//};
//int main() {
//
//	//联合变量的定义
//	union S un = { 0 };
//	// 下⾯输出的结果是⼀样的吗？
//	printf("%p\n", &(un.i));
//	printf("%p\n", &(un.c1));
//	printf("%p\n", &un);
//	return 0;
//}
//union S {
//	char c1;
//	int i;
//};
//int main() {
//	union S un = { 0 };
//	printf("un的大小为：%d", sizeof(un));
//}
//union S {
//	char c1;
//	int i;
//};
//int main() {
//	union S un = { 0 };
//	un.i = 0x11223344;
//	un.c1 = 0x55;
//	printf("%x\n", un.i);
//}
//union S {
//	short c1[7];  //对齐数为2
//	int i;       //对齐数为4（结构体大小应是它的整数倍）
//};
//int main() {
//
//	union S un = { 0 };
//	
//	printf("%d\n", sizeof(un)); 
//}
//struct gift_list
//{
//	//公共属性
//	int stock_number;//库存量
//	double price; //定价
//	int item_type;//商品类型
//
//	//特殊属性
//	char title[20];//书名
//	char author[20];//作者
//	int num_pages;//⻚数
//
//	char design[30];//设计
//	int colors;//颜⾊
//	int sizes;//尺⼨
//};
//struct gift_list
//{
//	int stock_number;//库存量
//	double price; //定价
//	int item_type;//商品类型
//
//	union {
//		struct
//		{
//			char title[20];//书名
//			char author[20];//作者
//			int num_pages;//⻚数
//		}book;
//		struct
//		{
//			char design[30];//设计
//		}mug;
//		struct
//		{
//			char design[30];//设计
//			int colors;//颜⾊
//			int sizes;//尺⼨
//		}shirt;
//	}item;
//};
//int check_sys() {
//	int a = 1;           //a的十六进制为：0x00 00 00 01
//
//	char* p = (char*)&a; //指向低地址，也是数据读取的开始
//
//	return *p;
//}
//int main() {
//	
//	int p = check_sys();
//	if (p == 1) {       //低地址---------->高地址
//		printf("是小端");//   01 00 00 00
//	}                    //低位-------->高位
//
//
//	else {               //低地址---------->高地址        
//		printf("是大端");//   00 00 00 01
//	}                    //低位-------- > 高位
//
//	return 0;
//}
int check_sys() {
	union S {
		int i;
		char c1;
	}un;
	un.i = 1;

	return un.c1;  //返回1是⼩端，返回0是⼤端
}
int main() {
	
	int p = check_sys();
	if (p == 1) {       //低地址---------->高地址
		printf("是小端");//   01 00 00 00
	}                    //低位-------->高位


	else {               //低地址---------->高地址        
		printf("是大端");//   00 00 00 01
	}                    //低位-------- > 高位

	return 0;
}
